{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x77a17f0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot\n",
    "import math\n",
    "pyplot.plot([math.sin(i)*5+10 for i in range(7)],'b^-',[i**(3/2) for i in range(7)],'gs-')\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZQAAAEKCAYAAAA1qaOTAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMS4wLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvpW3flQAAIABJREFUeJzt3Xl4VPXVwPHvkVULsgiIbIKAigsC\nRlzY3BDQKqigaG1RaamtVKuvVqx1b6u4V22rqCzaCgpuWKuUTVCUJQiIrIkgEKGAssi+5bx/nDvN\nECbJJJmZO0nO53nmmZk7d+ae3Jncc+9vFVXFOeecK63Dwg7AOedc+eAJxTnnXEJ4QnHOOZcQnlCc\nc84lhCcU55xzCeEJxTnnXEJ4QnHOOZcQnlCcc84lhCcU55xzCVE57ABSqV69etq8efOww3DOuTJl\n7ty536lq/aLWq1AJpXnz5mRmZoYdhnPOlSkisiqe9bzIyznnXEJ4QnHOOZcQnlCcc84lhCcU55xz\nCeEJxTnnXEKEmlBEZLiIbBCRrwp4XUTkWRHJFpEvRaRD1GsDRCQruA1IXdTOOediCfsKZSTQs5DX\newGtg9sg4O8AIlIXuB84E+gI3C8idZIaqXPOuUKF2g9FVaeLSPNCVukNvKo2T/FMEaktIscA5wIT\nVXUTgIhMxBLT6ORG7FzBcnPhhx9g61bYssVuW7fCnj2wdy/s25d3i37+4Yfw6afw8MNQpUrerWrV\nQ5/XqAG1a9utVi27r1Yt7L/cOZPuHRsbA2uinucEywpafggRGYRd3dCsWbPkROnKrW3bYO1a+PZb\nu49+vGFDXtLYssWSiWrJt3XvvSV7X/Xqecmldm2oWxeOOQYaN4ZGjfLuGzWCBg2gUqWSx+hcYdI9\noUiMZVrI8kMXqg4DhgFkZGSU4t/dlUd798KKFZCVdfAtJ8eSxrZth76nZk07SDdoAC1aHHwwj35c\nuzYceaQd8GNdbUQ/F4H9+wu+iok837497+onOplFP16/HubPt/vc3INjr1QJGja0+Fu0gNat827H\nHw9HHZWa/e7Kp3RPKDlA06jnTYC1wfJz8y3/OGVRuTJn82ZYsAAWLoTlyy1pLF8Oq1YdfNCtWxda\ntYK2baFnz4PP8Bs3tjP/mjWTE2MkuSTK/v2WVPJfWa1dawlzzhwYO/bgv79OnYOTTJs20K6d7ZPD\nwq5xdWkv3RPKeGCwiIzBKuC3quo6EZkA/DmqIv4i4O6wgnTpQxXWrIF58+wsff58e7wqaiSimjXt\nYHnmmXDddQcfQMvTGXrlypYEG8csDDZ798LKlXlXZpFk+8kn8PrreUV4P/oRnHaaJZf27e3+lFPs\n6su5CNHSFPqWduMio7ErjXrAeqzlVhUAVX1BRAR4Hqtw3wncoKqZwXtvBH4ffNSfVHVEUdvLyMhQ\nHxyyfNm8GT77zCq1Z82yBLJ5s70mYsU40QfBtm2tyEdiFZq6g+zaBUuXHpyc58/PKwasVMmuYDp0\ngE6doHNnOPFEv5Ipj0RkrqpmFLlemAkl1TyhlG2qdqXx6ad5t0WL7LXKlS1hdOiQl0BOPdXOrF3i\n5ObaFU301d+cOdZAAazI8JxzLLl07gwZGd4KrTzwhBKDJ5SyZ9UqmDABJk+GGTOsHgCssjv6wHXG\nGXDEEeHGWlGpQna2fT+RRL9smb1WrZp9N126QI8e9p0lsp7IpYYnlBg8oaS/Xbtg+nT46CO7LV1q\nyxs3hq5dLXl06mTl9978NX1t3GgJJpJkMjOtkUDNmnDBBdbgoWdPOPbYsCN18fCEEoMnlPS0fHle\nAvn4Y0sq1arBuefaQadHDyub93qPsuuHH2DKFPuOP/wQVq+25SeemJdcunXzSv505QklBk8o6UHV\n6j7GjrXbkiW2/IQT8g4uXbt6EVZ5pWpFYtEnEXv22CgAP/4x9O0LvXr5959OPKHE4AklPKrWBySS\nRJYts9ZAXbvaAeTii62jnat4du6EadPg3Xfh7bfhu++sMcUll+T9NrxxRbg8ocTgCSX1Fi6EMWMs\niWRlWRI591w7UFxxBRx9dNgRunSyf78ll7FjLbls3GhXKhdfDP36waWXwuGHhx1lxeMJJQZPKKmx\nZQuMHg2vvAJz51rl+XnnWRK5/HIbssS5ohw4YA00Isll/Xobzubaa+HGG62JuNerpYYnlBg8oSRP\nbq6Vhb/yiv3z795tnQgHDoRrroH69cOO0JVlBw7Y72vECHjrrYN/Xz/5Sfka4SAdeUKJwRNK4q1e\nDSNH2j/6N9/Y4Ig/+Yn9o7dv72eQLvEiV8DDh1tz5KpVoU8fu2q58EJvTp4MnlBi8ISSGKo23MnT\nT8M779jVyQUX2D/05Zd7GbdLnQUL7GTmtddg0yZo2RJuuQVuuCF5g3hWRPEmFB91x8Vt3z47Mzzz\nTOtgOGUK3HmnDf8+aZKVbXsycal02mnwzDM2gvKYMVY/d+ut0LQp3HHHwYOCuuTzhOKKtHkzDB0K\nxx1nSWPrVvjb32xU30cf9ea+LnzVqsHVV9uV88yZ1pfpmWfsiuWqq+Dzz8OOsGLwhOIKlJMDv/kN\nNGkCQ4ZYx8N//cs6Iv7qV943wKWnM8+0q5UVK+D22+E//7ExxM46C957r3SzarrCeUJxh/j2Wxg8\n2M7uXnzRzvwWLLBirUsu8eHJXdnQrBk89pidGD3/vHWY7NPHRkB+/31PLMnghwb3P2vXWoVmJJFc\nf711Rhw+3JpoOlcW1agBN99sA42OGGGtxC67DDp2hA8+8MSSSKEmFBHpKSLLRCRbRIbEeP1pEZkf\n3JaLyJao1w5EvTY+tZGXL+vWwW9/a4nk73+Hn/7UEsmLL/posK78qFzZTpKWLrX+Ut9/b2OHnXWW\nDVjpiaX0QksoIlIJ+CvQCzgJuEZETopeR1VvU9V2qtoOeA54O+rlXZHXVPWylAVejmzbBnffbZXt\nzz9vFe7LlsFLL0Hz5mFH51xyVKliTdwjv/X1621ol06drELflVyYVygdgWxVXaGqe4ExQO9C1r8G\nGJ2SyMq5AwesGKt1a2ul1a+f/XO98oolF+cqgipV4Oc/t+kTXnzROuaefTZcd53Vu7jiCzOhNAbW\nRD3PCZYdQkSOBVoAU6IWVxeRTBGZKSJ9khdm+TJ9us2gN3CgFXHNng2vvmqPnauIqlaFQYMssfz+\n9zBuHBx/PDz4oI2E7OIXZkKJNShHQaWY/YFxqnogalmzoOfmtcAzIhLzkCgig4LEk7lx48bSRVyG\nrVxpVyLdullrl9dft5n0zjgj7MicSw81asCf/mR1LD/+MTzwgDWVf/11r1+JV5gJJQdoGvW8CbC2\ngHX7k6+4S1XXBvcrgI+B9rHeqKrDVDVDVTPqV8ARCvfsgfvvhzZt4N//trOupUttwEYfZ8u5QzVv\nDm++acPo169vY9N16mRTMbjChZlQ5gCtRaSFiFTFksYhrbVE5ASgDvB51LI6IlIteFwP6AQsTknU\nZcjnn9sAjQ89ZHOPLFsG993nM+E5F4+uXWHOHKtvzMqy4fLvv99O0lxsoSUUVd0PDAYmAEuAN1V1\nkYg8JCLRrbauAcbowaNYtgEyRWQBMBV4VFU9oQR27LBmwJ06wfbtdmXy+uvW4905F79KlWygySVL\nrIPvQw/B6afDrFlhR5aefLThcmbSJPjFL6zFys03wyOP+KirziXKBx/ATTfZaBK//S388Y8V44rf\nRxuuYLZssZZb3btbq5Xp061viScT5xLnkktg0SL45S9t+oZTT4WpU8OOKn14QikHZs2yupJRo2wQ\nxwULoEuXsKNyrnw68kgbUeLjj21cuwsusObG+/aFHVn4PKGUYbm5Nvhd5872/NNPrYirevVw43Ku\nIujWzU7efv5z+78791yff8UTShm1YYMNF3HXXTaC6rx5NiaRcy51jjgChg2z4fIXLoR27WwW04rK\nE0oZNHmyzVQ3bRq88IK1ma9dO+yonKu4rr7aTupatbIm+oMHw+7dYUeVep5QypDcXOu92727JZDZ\ns61y0DsoOhe+li1hxgyb1Ouvf7USgxUrwo4qtTyhlBE7dthUpg8+CD/7GWRmWgsT51z6qFoVnnzS\nZjZdvdpmj/zkk7CjSh1PKGXAt99ar92334annrJJgnz6XefS1yWXWOvLunWtFdjIkWFHlBqeUNJc\nZqYN4Lh8uU1betttXsTlXFnQurXNr9Ktm/W2/93vbOqI8swTShobO9auTKpWhc8+s7Me51zZUaeO\nDX3061/D449bhf327WFHlTyeUNLU0KFWZ9K+vVW+e32Jc2VTlSpWSf/88zZ0S6dONu12eeQJJc2o\nWq/bIUNsiPkpU6BBg7Cjcs6V1s03W0L5+msreVi9OuyIEs8TShpRtQHnHnnEZpD7xz+gWrWwo3LO\nJUqPHjBxImzcaMMjZWeHHVFieUJJEwcOWBJ59llLKi+8YOMEOefKl7PPtpKHHTvsSmVxOZp4ww9Z\naWDfPutb8vLL8Ic/WNNgb8nlXPnVoYONdKFqrcDmzQs7osTwhBKyffts2IbXX7eirocf9mTiXEVw\n8snW6fGII+D88212yLIu1IQiIj1FZJmIZIvIkBivXy8iG0VkfnD7edRrA0QkK7gNSG3kiaFqk2G9\n8w4884xVxDvnKo5WrWzuojp1oFcvWLo07IhKJ7SEIiKVgL8CvYCTgGtE5KQYq76hqu2C28vBe+sC\n9wNnAh2B+0WkTopCT5i77rI5TB58EG69NexonHNhOPZYq6ivXNkq7XNywo6o5MK8QukIZKvqClXd\nC4wBesf53h7ARFXdpKqbgYlAzyTFmRRPPGEdnW6+Ge69N+xonHNhatkSPvwQNm+2pLJpU9gRlUyY\nCaUxsCbqeU6wLL8rReRLERknIk2L+d609OqrcOed0K8f/OUvXmfinLNOzO+9Z02JL70Udu4MO6Li\nCzOhxDqMar7n7wPNVbUtMAkYVYz32ooig0QkU0QyN27cWOJgE+WDD+DGG23AuNdeg0qVwo7IOZcu\nzjvPGuh8/rmNlFHWphUOM6HkAE2jnjcB1kavoKrfq+qe4OlLwOnxvjfqM4apaoaqZtSvXz8hgZfU\nokXWouu006wi3jstOufyu/JKm7P+gw+sJKMsCTOhzAFai0gLEakK9AfGR68gIsdEPb0MWBI8ngBc\nJCJ1gsr4i4JlaWvrVhsYrkYNGzW4Zs2wI3LOpatf/tI6OP/lLzB6dNjRxK9yWBtW1f0iMhhLBJWA\n4aq6SEQeAjJVdTxwi4hcBuwHNgHXB+/dJCIPY0kJ4CFVTdtqrNxcuP56G8Nn8mRo1CjsiJxz6e6x\nx2DuXPj5z+GUU8rGALGiGrPqoVzKyMjQzMzMlG/3kUdswMennrL5TJxzLh7//a/1qj/iCJsbqXbt\ncOIQkbmqmlHUet5TPskmTrThVK6+2i5hnXMuXg0bwrhxsGqVDc+Umxt2RIXzhJJEOTk2BH2bNjZO\nlzcPds4V1znnwNNPW93r0KFhR1M4TyhJomqjB+/caXPB16gRdkTOubLq5putlOO++2DBgrCjKZgn\nlCQZOdJ6vj76KBx/fNjROOfKMhGb9fGoo2x++nTtn+IJJQlycqzyvWtXGDw47Gicc+XBUUfZPEnz\n5tmJajryhJJgkaKuvXth+HCfJMs5lzh9+li97MMPw5dfhh3Nofxwl2DRRV0tW4YdjXOuvHnuORvu\n/vrr06/oyxNKAm3c6EVdzrnkii76euqpsKM5mCeUBHroIdi+3eeDd84l1+WX24jEf/6zncimCz/s\nJciyZZZIBg2yfifOOZdMQ4fCjh12IpsuPKEkyJAhcPjh8MADYUfinKsI2rSxE9gXXrAT2nTgCSUB\npk+Hd9+1pNKgQdjROOcqigcesBPZIUPCjsR4Qiml3Fy44w5o3NjH6nLOpVaDBnDXXXZCO3162NF4\nQim18eNhzhz44x9tRFDnnEul226zE9p77gk7Ek8opfbkk9C8OVx3XdiROOcqoiOOsFKSTz+F2bPD\njcUTSinMnm1f4q23QuXQpipzzlV0N94IRx4Zfr+UUBOKiPQUkWUiki0ih1QricjtIrJYRL4Ukcki\ncmzUawdEZH5wG5//vanw1FP2JQ4cGMbWnXPOHHmktfiKzJ0SltASiohUAv4K9AJOAq4RkZPyrTYP\nyFDVtsA44LGo13aparvgdllKgo6yapV9eYMG+fzwzrnw/eY3dv/ss+HFEOYVSkcgW1VXqOpeYAzQ\nO3oFVZ2qqjuDpzOBJimOsUCRL+2WW8KNwznnAJo1g6uugpdegh9+CCeGMBNKY2BN1POcYFlBBgIf\nRj2vLiKZIjJTRPoU9CYRGRSsl7kxQWMU7N5tMzD26wdNmybkI51zrtRuvx22bYPXXgtn+2EmlFgT\n4mrMFUWuAzKAx6MWN1PVDOBa4BkRiTm2r6oOU9UMVc2oX79+aWMGbDThH36wiW6ccy5dZGTAySfD\nmDHhbD/MhJIDRJ/fNwHW5l9JRC4E7gEuU9U9keWquja4XwF8DLRPZrDRxoyBevXg/PNTtUXnnItP\n//7W+nTNmqLXTbQwE8ocoLWItBCRqkB/4KDWWiLSHngRSyYbopbXEZFqweN6QCdgcSqC3r4d3n/f\niru8qbBzLt3072/3b76Z+m2HllBUdT8wGJgALAHeVNVFIvKQiERabT0O1ADG5mse3AbIFJEFwFTg\nUVVNSUJ5/33YtSvvS3POuXTSqpUVfYVR7CWqMastyqWMjAzNzMws1Wf07g1z58Lq1T7niXMuPT35\npPWeX74cWrcu/eeJyNygzrpQfkgshh074KOPrLjLk4lzLl1dfbXdv/12arfrh8VimDkT9u6FHj3C\njsQ55wrWpAmcdBJMm5ba7XpCKYZp0+zK5Jxzwo7EOecK17Wrtfbavz912/SEUgzTp0OHDjZujnPO\npbOuXa2T44IFqdumJ5Q47d5tRV5du4YdiXPOFS1yrErlxFueUOI0Zw7s2QPduoUdiXPOFa1xY2jZ\n0hNKWvr0U7vv3DncOJxzLl5du8Inn0Cqeod4QonT4sU2EGTdumFH4pxz8WnbFr7/Hr77LjXbKzKh\niMjRIvKKiHwYPD9JRCrclFJZWYnpIOScc6kSOWZlZaVme/FcoYzEhkdpFDxfDvw2WQGlq6wsOP74\nsKNwzrn4RY5Z6ZRQ6qnqm0Au/G8MrgNJjSrNfP89bNrkVyjOubKleXOoVMmGYEmFeBLKDhE5imCu\nEhE5C9ia1KjSTCS7e0JxzpUlVapAixapu0KJZwD227Fh5VuKyAygPtA3qVGlmexsu/eE4pwra1q3\nTqOEoqpfiEg34ARslsVlqrov6ZGlkcjMwQ0bhhuHc84VV8OGsHBharZVZEIRkZ/lW9RBRFDVV5MU\nU9rZvt3ua9QINw7nnCuumjXzjmHJFk8dyhlRty7AA8Blhb0hXiLSU0SWiUi2iAyJ8Xo1EXkjeH2W\niDSPeu3uYPkyEUnq+L/btkH16j5Do3Ou7KlRw45hqejcGE+R12+in4tILeC10m5YRCoBfwW6Y/PL\nzxGR8flmXhwIbFbVViLSHxgKXC0iJ2FTBp+MNWeeJCLHq2pSWp9t3+5XJ865sqlGDThwwIaOql49\nudsqSU/5nUAiqqc7AtmqukJV9wJjgN751ukNjAoejwMuEBEJlo9R1T2quhLIDj4vKbZts8tG55wr\nayLHrm3bkr+teOpQ3idoMowloJOANxOw7cbAmqjnOcCZBa2jqvtFZCtwVLB8Zr73Nk5ATDH5FYpz\nrqyKHLu2b4f69ZO7rXhqBZ6IerwfWKWqOQnYtsRYlr+Ur6B14nmvfYDIIGAQQLNmzYoT3//k5oLE\n2qJzzqW5yHTlB1LQHT2eOpRkTSKZAzSNet4EWFvAOjkiUhmoBWyK870AqOowYBhARkZGiaqlatSw\n+eSdc66sibTwSkWxfYF1KCKyTUR+iHHbJiI/JGDbc4DWItJCRKpilezj860zHhgQPO4LTFFVDZb3\nD1qBtcDqdGYnIKaYatZMTfmjc84lWuTYlYqEUuAViqomdfNBnchgbODJSsBwVV0kIg8Bmao6HngF\neE1EsrErk/7BexeJyJvAYqwY7uZktfACu0JJVTtu55xLpO3brdjr8MOTv624e1aISAPgf43OVHV1\naTeuqv8G/p1v2X1Rj3cD/Qp475+AP5U2hnjUrAk7d1oZZKVKqdiic84lRqRRUSrqgeOZD+UyEckC\nVgLTgG+AD5McV1qJtJLwehTnXFmzbVvqWqnG0w/lYeAsYLmqtgAuAGYkNao0E5mlMTKml3POlRXf\nfQd16qRmW/EklH2q+j1wmIgcpqpTgXZJjiuttGxp95FRh51zrqzIyoJWrVKzrXgSyhYRqQF8AvxT\nRP6CVYRXGKmeRtM55xIhNxe+/jp1U28U1mz4eRHphA1zshOb9vcj4Gvg0tSElx4aNrQySE8ozrmy\nZM0aG8MrVdOXF9bKKwvrJX8M8AYwWlVHFbJ+uSViGT5V02g651wiRI5ZoV+hqOpfVPVsoBvWB2SE\niCwRkXtFJEX5Ln2kctYz55xLhFRPX15kHYqqrlLVoaraHrgWuAJYkvTI0syJJ8LKld7B0TlXdixa\nZMX1jRqlZnvx9EOpIiKXisg/sf4ny4Erkx5ZmjnnHKvgmjmz6HWdcy4dfPKJHbtSNbhtYZXy3UVk\nODYQ4yCsR3tLVb1aVd9NTXjp45xzrJf8tGQNlemccwm0aZPNJd+1a+q2WVil/O+B14E7VHVTiuJJ\nWzVrQocOMH162JE451zRPvnE7tMioajqeakLo2zo2hWefx52707+VJrOOVca06dDtWrQMWlz2R6q\nJFMAV1jdulmb7tlJGyjfOecSY/p0OOssSyqp4gmlGDp3tsqtSZPCjsQ55wq2aRN88UVqi7vAE0qx\n1KljVyljx4KWaO5H55xLvrfeslapffqkdrueUIqpf39YuhS+/DLsSJxzLrYxY6wzY/v2qd1uKAlF\nROqKyEQRyQruDxlcWUTaicjnIrJIRL4UkaujXhspIitFZH5wS9nox1deac2HR49O1Radcy5+69bB\n1KlwzTWp638SEdYVyhBgsqq2BiYHz/PbCfxMVU8GegLPiEjtqNfvVNV2wW1+8kM29epB9+52BuDF\nXs65dDNunB2brr666HUTLayE0huIDDQ5CjikpE9Vl6tqVvB4LbABqJ+yCAvRvz+sWgWzZoUdiXPO\nHWz0aGjbFk46KfXbDiuhHK2q6wCC+waFrSwiHYGq2ND5EX8KisKeFpEUNoyziq5q1eDVV1O5Veec\nK1x2Nnz+eThXJ5DEhCIik0Tkqxi33sX8nGOA14AbVDU3WHw3cCJwBlAXuKuQ9w8SkUwRydyYoDl8\na9Wy8slRo6x5nnPOpYNnnoGqVeHGG8PZftISiqpeqKqnxLi9B6wPEkUkYWyI9RkiciTwAfAHVZ0Z\n9dnr1OwBRgAF9gVV1WGqmqGqGfXrJ67E7LbbYOdOGDYsYR/pnHMltmkTjBgB115rkwKGIawir/HA\ngODxAOC9/CuISFXgHeBVVR2b77VIMhKs/uWrpEYbQ9u2cOGF8NxzsHdvqrfunHMHe/FFO8m97bbw\nYggroTwKdBeRLKB78BwRyRCRl4N1rgK6AtfHaB78TxFZCCwE6gF/TG345v/+D9auhTfeCGPrzjln\n9u61k9vu3e1kNyyiFajta0ZGhmZmZibs81ThlFOgShWYNy/1bb6dcw6sgdCAAfDhh9CzZ+I/X0Tm\nqmpGUet5T/lSEIHbb4cFC+yLdM65VNu/H4YOtWbCPXqEG4snlFL66U+hZUv43e/si3XOuVQaORIW\nL4YHHwy/lMQTSilVrQqPPmpzN48cGXY0zrmKZPt2uPdeOPtsGxYqbJ5QEuDKK+0Lvfde+4Kdcy4V\nnngC/vtfePLJ8K9OwBNKQojYFxr5Yp1zLtnWrYPHH4d+/eyENh14QkmQs8+2L/axx+yLds65ZLrv\nPti3Dx55JOxI8nhCSaBHHrEvOMyORc658m/mTBg+HAYPtkZB6cITSgK1bGlnDW+8YTOmOedcou3a\nBddfD02awAMPhB3NwTyhJNhdd0GHDvDrX8N334UdjXOuvLn/fli2DF55BY48MuxoDuYJJcGqVLHm\nw5s32+Woc84lysyZ1vBn0CAbSzDdeEJJglNP9aIv51xiRRd1Pf542NHE5gklSSJFX7/6FSRoGhbn\nXAV2331W1PXyy+lX1BXhCSVJIkVfP/xgk3H5sCzOuZIaP946Md50k40onK48oSTRqafC3/8OkyfD\nH/4QdjTOubIoK8vGDDz9dHj66bCjKZwnlCS74QarQBs6FN5+O+xonHNlyY4dcMUVVuLx1ltQvXrY\nERXOE0oKPPssdOxoFWpLl4YdjXOuLFCFX/zCRhIePRqOPTbsiIoWSkIRkboiMlFEsoL7OgWsdyBq\ntsbxUctbiMis4P1vBNMFp61q1WDcODu7uOIK2LYt7Iicc+nu2Wctkfzxj+ldbxItrCuUIcBkVW0N\nTA6ex7JLVdsFt8uilg8Fng7evxkYmNxwS69pUxgzxlpp/OQnXknvnCvYhAlwxx3Qpw8MKejomIbC\nSii9gVHB41FAn3jfKCICnA+MK8n7w3T++XbW8f778Mtf2iWtc85FmzXLSjJOOQVGjUqPYenjVTmk\n7R6tqusAVHWdiDQoYL3qIpIJ7AceVdV3gaOALaoaOcfPARoXtCERGQQMAmjWrFmi4i+xm2+G9evh\n4Yfh6KPhz38OOyLnXLpYuhQuuQQaNrRpxdO1v0lBkpZQRGQS0DDGS/cU42OaqepaETkOmCIiC4Ef\nYqxX4Lm+qg4DhgFkZGSkxTXBgw9aUnnkEUsqt94adkTOubDl5MBFF0HlyvCf/1hSKWuSllBUtcCR\nZkRkvYgcE1ydHANsKOAz1gb3K0TkY6A98BZQW0QqB1cpTYC1Cf8DkkgE/vY3Gzzyt7+F+vXh2mvD\njso5F5ZNm6BHD9iyBaZNS68h6YsjrDqU8cCA4PEA4L38K4hIHRGpFjyuB3QCFquqAlOBvoW9P91V\nqgT//Cecey4MGAAffBB2RM65MPzwA/z4x5CdDe+9B+3bhx1RyYWVUB4FuotIFtA9eI6IZIjIy8E6\nbYBMEVmAJZBHVXVx8NpdwO32uB2CAAAU0ElEQVQiko3VqbyS0ugTpHp1ePddOO00uPxyH0jSuYpm\n0yZrEjxnjjURPu+8sCMqHdEK1NQoIyNDMzMzww7jEFu3wsUX29DUI0faMAvOufJtwwZLJkuXWj+1\nSy8NO6KCichcVc0oaj3vKZ8GatWydueR4q8XXww7IudcMn37LXTtauN0/etf6Z1MisMTSpqoUcN+\nWBdfbCOKpvsgcM65klm5Erp0gbVr7USyrPSCj4cnlDRy+OE2gGTfvnD77TZfdAUqkXSu3FuyxK5M\ntmyxUci7dAk7osQKq2OjK0DVqlY596MfWX+Vr7+Gl15K/1FGnXOFmzABrrrKThw//hjatg07osTz\nK5Q0VLkyjBhhg8L94x82ZMv69WFH5ZwrCVV47jkrzm7RAmbPLp/JBDyhpC0RuOceGDsW5s+34e8X\nLgw7KudccezbZ8Mt3XKLVbx/+imkwQhQSeMJJc317QvTp9voxOecYxX3zrn0t3kz9Opls7bedZfV\nj9aoEXZUyeUJpQzIyLDL5BNOgMsug0cfhdzcsKNyzhVk0SI46yw7GRw50v5nD6sAR9sK8CeWD40b\n24/zqqvg7rttRNINMUdAc86FRdUa0ZxxhrXkmjLF+pZVFJ5QypAjjrAWYH//O0ydakO2TJkSdlTO\nObARL665BgYNgs6dYcECu69IPKGUMSLW8XH2bKhdGy68EO6912eAdC5Mc+ZAhw42hMojj8BHH5XN\n4edLyxNKGdW2LWRmwvXXW/Pi886DNWvCjsq5iiU3F5580hrM7N9vxdJDhlSM+pJYKuifXT786Ecw\nfLj1VZk/34rARo3y3vXOpcLKlTaHyR13WJPgefMssVRknlDKgZ/8xH7MJ59sVyy9esGqVWFH5Vz5\ndOAAPPuszfk+c6bVab71FtStG3Zk4fOEUk60amUzvT3/PMyYYcnl+ee9ebFzibR4sY2/deut0K2b\nNQ++6Sar23SeUMqVww6zXrlffWWtS37zGxuIbunSsCNzrmzbt8/qKtu3h2XL4LXXbJbV8tzrvSRC\nSSgiUldEJopIVnBfJ8Y654nI/KjbbhHpE7w2UkRWRr3WLvV/Rfo69lj48EOrT1m82OpWHn4Ydu0K\nOzLnyp7PPrPOxffeC3362IjB113nVyWxhHWFMgSYrKqtgcnB84Oo6lRVbaeq7YDzgZ3Af6JWuTPy\nuqrOT0nUZYgI/Oxn9uPv3Rvuuw/atIE33/RKe+fisXq19Svp1Am++w7eeQfeeAMaNAg7svQVVkLp\nDYwKHo8C+hSxfl/gQ1XdmdSoyqGjj7YkMmWK9Vu5+mor+/3ii7Ajcy497dhhJ2AnnADvvmtXJsuX\n29WJK1xYCeVoVV0HENwXlfP7A6PzLfuTiHwpIk+LSLWC3igig0QkU0QyN27cWLqoy7DzzoO5c2HY\nMKtTyciAG2+E//437MicSw+5udYE/4QTrIi4Tx+rL3noIWui74qWtIQiIpNE5KsYt97F/JxjgFOB\nCVGL7wZOBM4A6gJ3FfR+VR2mqhmqmlG/fv0S/CXlR6VK8Itf2DzWd9xh/zytW8Of/wzbt4cdnXPh\nmT7d+pD89KdwzDE2zPzo0V7pXlxJSyiqeqGqnhLj9h6wPkgUkYRR2DCHVwHvqOq+qM9ep2YPMALo\nmKy/ozyqVQsee8wq7C+4wOZdadECHn/cLvedqyg+/dT+B7p1szqTkSNh1iyrN3HFF1aR13ggMgbn\nAOC9Qta9hnzFXVHJSLD6l6+SEGO516qVlRF//jmcfjr87ndw3HE2lMROr61y5dhnn0H37tanZNEi\neOopm257wICKO2xKIoS16x4FuotIFtA9eI6IZIjIy5GVRKQ50BSYlu/9/xSRhcBCoB7wxxTEXG6d\ndZYNZvfZZ9bE+I47LLE8/bQ3NXbly8yZNlxKp042GvATT8CKFXDbbTbXuysd0QrUhjQjI0MzMzPD\nDiPtzZgB998PkyfbiKm33WZ1L3UO6S3kXPpTtVaOTzxhJ0716tnV+K9/7ZXt8RKRuaqaUdR6fnHn\nDtGpE0yaZBWVJ59s05c2bQqDB1uFvnNlwe7dNnjqaafZNA9ffGEzJ65cCXfe6ckkGTyhuAJ16WKJ\nZf586NfPZqKLTEM8dap3kHTpaf16eOABGzFi4EBbNny4DZh6113lf173MHlCcUU67TQYMcL+Ie+9\n18qhzz/fxjUaOdLOBJ0L24IF1reqWTN48EGbhnfSJFt+ww1QvXrYEZZ/nlBc3Bo2tH/U1avh5Zdt\nQqEbbrB2+4MHe+97l3pbtsALL1jyaNfOhkYZONA67/7rX9Yk2MfcSh1PKK7Yqle3f9qFC63ivlcv\nSzCnn25XLc89B99/H3aUrrzKzbUi10gnxF/9CvbsgWeesVlL//Y3K5p1qeetvFxCbN5sPYtfecWu\nVKpWhcsvtyKICy6wXvrOlcaaNTaC9ogR1tS3Vi249lr7jZ1+ul+JJFO8rbw8obiEmz/f/un/8Q/Y\ntMnOIq+4wir2O3f25OLi9+23Nhvi2LHWnF3VxqUbONBOWI44IuwIKwZPKDF4Qkmt3bth/Hgr1/73\nv+15w4Z5yaVLF08u7lA5OTBunN1mzLBlp5wCfftaMddxx4UbX0XkCSUGTyjh2b7dksrYsTbT3a5d\nNq/EFVfYgaJLFysmcxXTN9/YfCNjx9pQQABt29pvo18/OPHEUMOr8DyhxOAJJT3s2GHJZdw4a4mz\nc6f1DbjgAujZ04bGaNEi7ChdMu3aBdOmWc/1jz6yYeLBWmpFksjxx4cbo8vjCSUGTyjpZ+dOmDgR\nJkywaYu/+caWn3CCJZeePW0kWB9nqWxTtaQRSSDTplkRaPXqcO659j1fcokNWOrSjyeUGDyhpDdV\nmxnvo48swUydagedatWsSKxLF6vUP/NMHzYj3UUSyIwZNkT81KnWMRas+CpystC1q58slAWeUGLw\nhFK27NoFn3xiCWbyZOv3omoV+e3bW3Lp3NnGHmvYMOxoK7a9e625+Kef2m3GDJuHHWwwxi5drCiz\nRw9o3jzUUF0JeEKJwRNK2bZliw37EjlozZqVN+xLy5Y241779lYO366dj46cLPv329XHvHnWRHzO\nHJg9O++7aNUqL9l37mx1Id5HpGzzhBKDJ5TyJXJWHClWmTUL1q3Le/3YY/OSSyTRNGvmB7fi2L4d\nvvzSEsf8+ZZEFi60nulgxZFt2x58tXj00eHG7BIvrROKiPQDHgDaAB1VNeZRXkR6An8BKgEvq2pk\nIq4WwBhsPvkvgJ+q6t6itusJpfxbv94GA4ycPc+fb2fTkZ95rVp2xty6dd595Fa7drixh2X/fmsM\nkZVldVhZWXm3b77J23d16x6cnNu1s/qQypXDjN6lQronlDZALvAicEeshCIilYDl2IyOOcAc4BpV\nXSwibwJvq+oYEXkBWKCqfy9qu55QKqYdO+ysev58O9uOHCxXrz54CP569fKSTLNm0KiR3Ro3tvsG\nDcpmR8xt22DtWut1vnZt3uPsbNsPK1daUok48si8JNumTV4SadLEr+4qqngTSijnFqq6BEAK/3V2\nBLJVdUWw7higt4gsAc4Hrg3WG4Vd7RSZUFzF9KMf2TTHZ5118PLdu20e8egz8qwsG/J83TobhDBa\npUpW+R9JMkcfbVc1tWrZff7HkefVqtl7S3Mwzs2FffusCGrLlrzb1q2HPv7++4MTx/bth35ezZrW\n4/y006zfR/QVW/36njhcyaTzxWpjYE3U8xzgTOAoYIuq7o9a3jjFsblyoHp1m5Hy5JMPfW3/ftiw\nIfaZ/dq1log++8wO4HuLLGy1A3SVKnm3qlUPfn7YYZYwom979+Y9PnAgvm3UqmWNERo1smTRq9eh\nV1qNGvkkUy45kpZQRGQSEKsx5z2q+l48HxFjmRayvKA4BgGDAJo1axbHZp2zeoHIwTejiAv93bsP\nvVqIvmrYs+fg5BArYeTmHpxgYiWdKlXsyiL6Cij6qqhmTUtMzoUlaQlFVS8s5UfkAE2jnjcB1gLf\nAbVFpHJwlRJZXlAcw4BhYHUopYzJuUNUr25FYd4XxlV06Xw+MwdoLSItRKQq0B8Yr9aKYCrQN1hv\nABDPFY9zzrkkCiWhiMjlIpIDnA18ICITguWNROTfAMHVx2BgArAEeFNVFwUfcRdwu4hkY3Uqr6T6\nb3DOOXcw79jonHOuUPE2G07nIi/nnHNliCcU55xzCeEJxTnnXEJ4QnHOOZcQnlCcc84lRIVq5SUi\nG4FVJXx7PaxTZbrxuIrH4yoej6t4ymtcx6pq/aJWqlAJpTREJDOeZnOp5nEVj8dVPB5X8VT0uLzI\nyznnXEJ4QnHOOZcQnlDiNyzsAArgcRWPx1U8HlfxVOi4vA7FOedcQvgVinPOuYTwhBJFRPqJyCIR\nyRWRAltEiEhPEVkmItkiMiRqeQsRmSUiWSLyRjDsfiLiqisiE4PPnSgidWKsc56IzI+67RaRPsFr\nI0VkZdRr7VIVV7Degahtj49aHub+aicinwff95cicnXUawndXwX9XqJerxb8/dnB/mge9drdwfJl\nItKjNHGUIK7bRWRxsH8mi8ixUa/F/E5TFNf1IrIxavs/j3ptQPC9Z4nIgBTH9XRUTMtFZEvUa0nZ\nXyIyXEQ2iMhXBbwuIvJsEPOXItIh6rXE7ytV9VtwA9oAJwAfAxkFrFMJ+Bo4DqgKLABOCl57E+gf\nPH4B+FWC4noMGBI8HgIMLWL9usAm4Ijg+UigbxL2V1xxAdsLWB7a/gKOB1oHjxsB64Daid5fhf1e\notb5NfBC8Lg/8Ebw+KRg/WpAi+BzKqUwrvOifkO/isRV2HeaoriuB56P8d66wIrgvk7wuE6q4sq3\n/m+A4SnYX12BDsBXBbx+MfAhNtPtWcCsZO4rv0KJoqpLVHVZEat1BLJVdYWq7gXGAL1FRIDzgXHB\neqOAPgkKrXfwefF+bl/gQ1XdmaDtF6S4cf1P2PtLVZeralbweC2wASiy41YJxPy9FBLvOOCCYP/0\nBsao6h5VXQlkB5+XkrhUdWrUb2gmNjtqssWzvwrSA5ioqptUdTMwEegZUlzXAKMTtO0Cqep07OSx\nIL2BV9XMxGa7PYYk7StPKMXXGFgT9TwnWHYUsEVtYrDo5YlwtKquAwjuGxSxfn8O/TH/KbjkfVpE\nqqU4ruoikikiMyPFcKTR/hKRjthZ59dRixO1vwr6vcRcJ9gfW7H9E897kxlXtIHYmW5ErO80lXFd\nGXw/40QkMlV4WuyvoGiwBTAlanGy9ldRCoo7KfsqaXPKpysRmQTEmv37HlWNZyphibFMC1le6rji\n/Yzgc44BTsVmuoy4G/gvdtAchs14+VAK42qmqmtF5DhgiogsBH6IsV5Y++s1YICq5gaLS7y/Ym0i\nxrL8f2dSflNFiPuzReQ6IAPoFrX4kO9UVb+O9f4kxPU+MFpV94jITdjV3flxvjeZcUX0B8ap6oGo\nZcnaX0VJ6W+rwiUUVb2wlB+RAzSNet4EWIuNk1NbRCoHZ5mR5aWOS0TWi8gxqrouOABuKOSjrgLe\nUdV9UZ+9Lni4R0RGAHekMq6gSAlVXSEiHwPtgbcIeX+JyJHAB8AfguKAyGeXeH/FUNDvJdY6OSJS\nGaiFFWPE895kxoWIXIgl6W6quieyvIDvNBEHyCLjUtXvo56+BAyNeu+5+d77cQJiiiuuKP2Bm6MX\nJHF/FaWguJOyr7zIq/jmAK3FWihVxX4849VquqZi9RcAA4B4rnjiMT74vHg+95Cy2+CgGqm36APE\nbBGSjLhEpE6kyEhE6gGdgMVh76/gu3sHK18em++1RO6vmL+XQuLtC0wJ9s94oL9YK7AWQGtgdili\nKVZcItIeeBG4TFU3RC2P+Z2mMK5jop5eBiwJHk8ALgriqwNcxMFX6kmNK4jtBKyS+/OoZcncX0UZ\nD/wsaO11FrA1OGFKzr5KRsuDsnoDLscy9x5gPTAhWN4I+HfUehcDy7EzjHuilh+H/cNnA2OBagmK\n6yhgMpAV3NcNlmcAL0et1xz4Fjgs3/unAAuxA+M/gBqpigs4J9j2guB+YDrsL+A6YB8wP+rWLhn7\nK9bvBStCuyx4XD34+7OD/XFc1HvvCd63DOiV4N97UXFNCv4PIvtnfFHfaYriegRYFGx/KnBi1Htv\nDPZjNnBDKuMKnj8APJrvfUnbX9jJ47rgt5yD1XXdBNwUvC7AX4OYFxLVejUZ+8p7yjvnnEsIL/Jy\nzjmXEJ5QnHPOJYQnFOeccwnhCcU551xCeEJxzjmXEJ5QnAtEjQj7lYi8LyK1S/FZ3wR9DmItfyvq\neV8RGVnS7eT77AdEpDSdMJ0rFU8ozuXZpartVPUUrKf6zUW9oYQyROTkJH12iQQd3/x44ErFf0DO\nxfY5UYPlicidIjInGJDwwajl74rIXLF5VQbF+dlPAL/PvzD/FUZwpdQ8uC0VkZeDZf8UkQtFZIbY\nXBbRIxCfJiJTguW/KCz+4HOXiMjfgC84eIgO54rNE4pz+YhIJeACgqE1ROQibNiTjkA74HQR6Rqs\nfqOqno71wr9FRI6KYxNvAh1EpFUxwmoF/AVoC5wIXAt0xsYZi05ObYFLgLOB+0SkURHxn4ANP9Ne\nVVcVIx7nDuEJxbk8h4vIfOB7bOKhicHyi4LbPOxM/kTsAA2WRBZg84U0jVpemAPA49ioxvFaqaoL\n1UZEXgRMVhvmYiE25E7Ee6q6S1W/w4Yl6VhE/Ks0amBM50qjwo027FwhdqlqOxGpBfwLq0N5FhsP\n6RFVfTF6ZRE5F7gQOFtVdwajyFaPc1uvYQllUdSy/Rx8khf9WXuiHudGPc/l4P/j/GMpRYYqjxV/\nc2BHnPE6VyS/QnEuH1XdCtwC3CEiVbBRWG8UkRoAItJYRBpgw8xvDpLJidgUq/FuYx/wNPDbqMXf\nYNO5Ijb3d4sShN9bRKoHRW/nYqPkFhS/cwnlVyjOxaCq84KirP6q+pqItAE+txHt2Y6NVvwRcJOI\nfImNBlzcoqNXgD9EPX8LG2p8PpYIlpcg9NnYHC/NgIfV5uFYW0D8Bwr8FOdKwEcbds45lxBe5OWc\ncy4hPKE455xLCE8ozjnnEsITinPOuYTwhOKccy4hPKE455xLCE8ozjnnEsITinPOuYT4fzZAwb0X\nigRhAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x77fba50>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot\n",
    "import numpy as np\n",
    "a=np.arange(2.02*np.pi,step=np.pi/50)\n",
    "pyplot.plot(np.sin(a),np.cos(a),'b-')\n",
    "pyplot.xlabel('Real Number')\n",
    "pyplot.ylabel('Value')\n",
    "pyplot.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tricky Python\n",
    "删除列表元素时，留神！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 2, 3]\n"
     ]
    }
   ],
   "source": [
    "l=[1,2,2,3]\n",
    "for i in l:\n",
    "    if i==2:\n",
    "        l.remove(i)\n",
    "print(l)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## #Seems different between 3.6 and 3.4\n",
    "不存在的，在Cygwin的Python3.6内核测试，二者表现相同"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(123, Ellipsis, slice(1, 3, 5), [1, 2, 3])\n"
     ]
    }
   ],
   "source": [
    "class A:\n",
    "    def __getitem__(self,arg):\n",
    "        print(arg)\n",
    "        return \n",
    "a=A()\n",
    "b=a[123,...,1:3:5,[1,2,3]]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\n",
      "5 2\n"
     ]
    }
   ],
   "source": [
    "a=slice(1,5,2)\n",
    "print(a.start)\n",
    "print(a.stop,a.step)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "ename": "SyntaxError",
     "evalue": "invalid syntax (<ipython-input-10-9121ac8cbf11>, line 1)",
     "output_type": "error",
     "traceback": [
      "\u001b[1;36m  File \u001b[1;32m\"<ipython-input-10-9121ac8cbf11>\"\u001b[1;36m, line \u001b[1;32m1\u001b[0m\n\u001b[1;33m    a=[1:3:4]\u001b[0m\n\u001b[1;37m        ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n"
     ]
    }
   ],
   "source": [
    "# This is ivalid\n",
    "a=[1:3:4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Lazy Python\n",
      "Lazy\n"
     ]
    }
   ],
   "source": [
    "print('123' and 'Lazy Python')\n",
    "print('Lazy' or None)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 连等机制"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "False\n",
      "True\n"
     ]
    }
   ],
   "source": [
    "print((False is False) is False )\n",
    "#连等机制\n",
    "print(False is False is False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## add operation with lists returns a new list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[1, 2, 3, 1] [1, 2, 3]\n"
     ]
    }
   ],
   "source": [
    "a=[1,2,3]\n",
    "print(a+[1],a)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Just be lazy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\n"
     ]
    }
   ],
   "source": [
    "#lazy python here.\n",
    "try:\n",
    "    a=print(1) and 1/0\n",
    "except:\n",
    "    print(2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Tricky ~"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1\n"
     ]
    }
   ],
   "source": [
    "#-(x+1)\n",
    "print(~(-2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## To define a class in a function"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<__main__.abc.<locals>.A object at 0x03707B70>\n"
     ]
    }
   ],
   "source": [
    "def abc():\n",
    "    class A:\n",
    "        pass \n",
    "    return A()\n",
    "print(abc())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3.141592653589793\n"
     ]
    }
   ],
   "source": [
    "def hhh():\n",
    "    import math\n",
    "    print(math.pi)\n",
    "hhh()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 此种切片并不报错"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gijsdhgedhjgkh\n"
     ]
    }
   ],
   "source": [
    "s='jksahgijsdhgedhjgkh'\n",
    "print(s[5:999])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.4.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
